import torch
tensor=torch.tensor([[1,2,3],[4,5,6]],dtype=torch.float32)
print(tensor.dim())
print('原始张量：\n',tensor)

#1. 索引和切片
print('\n索引和切片')
print('获取第一行：',tensor[0])
print('获取第一行第一列元素：',tensor[0,0])
print('获取第二列所有元素',tensor[:,1])

#2. 形状变换操作
print("\n形状变换")
reshaped=tensor.view(3,2)
print("改变形状后的张量：\n",reshaped)
flattened =tensor.flatten()#将张量展平成一维
print('展平后的张量：\n',flattened)

#3.数学运算操作
print('\n【数学运算】')
tensor_add=tensor+10 #张量加法
print('张量加10：\n',tensor_add)
tensor_mul =tensor*2#张量乘法
print("张量乘2：\n",tensor_mul)
tensor_sum=tensor.sum()
print('张量元素的和：',tensor_sum,tensor_sum.item())

#4.与其他张量的操作
print('\n【与其他张量的操作】')
tensor2=torch.tensor([[1,1,1],[1,1,1]],dtype=torch.float32)
print('另一个张量：\n',tensor2)
tensor_dot=torch.matmul(tensor,tensor2.T)#矩阵乘法
print('矩阵乘法结果:\n',tensor_dot)

#5.条件判断
print('\n【条件判断和筛选】')
mask=tensor>3
print('大于3的元素的布尔掩码：\n',mask)
filtered_tensor=tensor[tensor>3]
print('大于3的元素：\n',filtered_tensor)

